home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Snippets / PPP_PrefSaver 1.1 / C Source / PPP-Prefs.h < prev   
C/C++ Source or Header  |  1996-05-18  |  4KB  |  139 lines

  1. #pragma    once
  2.  
  3. #include    <Folders.h>
  4. #include    <Files.h>
  5.  
  6. /****** COMPILER DIRECTIVES ********/
  7. #define        STANDALONE    1        /* False - compiling as an 'IEnd' code resource
  8.                                     (Set only the Purgeable flag, ID 128, or if using
  9.                                         InstallerMaker 3.0, set the ID to 256)
  10.                                    True - compiling as standalone application
  11.                                     (Set only the 32bit compatible flag, 100K partition,
  12.                                         Creator Type 'RSED', File Type 'rsrc')                */
  13. #define        USE_SCRIPT    1        /* True - Save settings into the connect script of
  14.                                         the active server, False - save settings into
  15.                                         the Authentication settings of the active server    */
  16. #define        DEMO_ONLY    0        /* True if you want to compile code that just demonstrates
  17.                                     the code without actually saving anything into the prefs */
  18.  
  19. // Connect script fields to use, if writing into the connect script...
  20. #define        NAME_COMMAND    1    // Which script command (0-7) to save Name in?
  21. #define        PWORD_COMMAND    3    // Which script command to save password in?
  22.  
  23.  
  24.     // Alert tells user we can't enter PPP pref settings due to an error
  25. #define        rErrorAlert        5000
  26.  
  27.  
  28. // Type definitions
  29. typedef unsigned char uchar;
  30.  
  31. #if STANDALONE
  32.     void    main( void );
  33. #else
  34.     pascal short main(short abort,short vol,long dir,uchar *name,
  35.                           unsigned short packages);
  36. #endif
  37.  
  38. void    HandleError(OSErr errNum);
  39. short    OpenPPP_Prefs(OSErr *err);
  40. OSErr    GetPPP_Pref(struct ppp_pref *thePref);
  41. OSErr    GetPPP_Config(struct ppp_config *theConfig,short confignum);
  42. void    PutPPP_Config(struct ppp_config theConfig,short confignum);
  43.  
  44. typedef unsigned char b_8;                /* 8-bit quantity */
  45. typedef unsigned short b_16;            /* 16-bit quantity */
  46. typedef unsigned long b_32;                /* 32-bit quantity */
  47.  
  48. #define MAXSLEN 42        /* max string length */
  49. #define NUMCOMMANDS 8    /* number of strings */
  50. #define PREF_VERSION 3    /* version of prefs file */
  51. #define NUMCONFIGS 4    /* number of configurations */
  52.  
  53. struct lcp_value_s {
  54.     b_16    mru;            /* Maximum Receive Unit */
  55.     b_16    authentication;    /* Authentication protocol */
  56.     b_32    accm;            /* Async Control Char Map */
  57.     b_32    magic_number;    /* Magic number value */
  58. };
  59.  
  60. struct ipcp_value_s {
  61.     b_32    address;        /* address for this side */
  62.     b_32    other;            /* address for other side */
  63.     b_16    compression;    /* Compression protocol */
  64.     b_16    slots;            /* Slots (0-n)*/
  65.     b_8        slot_compress;    /* Slots may be compressed (flag)*/
  66. };
  67.  
  68. union value_s {
  69.     struct    lcp_value_s lcp_option;
  70.     struct    ipcp_value_s ipcp_option;
  71. };
  72.  
  73. struct lcp_will_want {
  74.     b_16    will_negotiate, want_negotiate;
  75.     struct    lcp_value_s want;
  76. };
  77.  
  78. struct lcpconfig {
  79.     struct lcp_will_want local, remote;
  80.     b_8        req_tries;
  81.     b_8        timeout;
  82. };
  83.  
  84. struct ppp_pref {
  85.     b_16    version;        /* version of Preferences file (should be 3) */
  86.     b_8        portname[32];    /* port name (from CommToolBox) */
  87.     Boolean    hangup;            /* send modem hangup command on close */
  88.     Boolean    use_pulse;        /* use pulse for dialing */
  89.     Boolean quiet;            /* Quiet mode flag */
  90.     Boolean use_term;        /* bring up a terminal window on connection establishment */
  91.     b_16    timeout;        /* idle timeout (minutes), 0 = none */
  92.     b_16    echo;            /* PPP LCP echo interval  0 = off */
  93.     b_16    active_config;    /* active config index */
  94.     b_16    max_config;        /* maximum conifg index */
  95.     b_16    echo_tries;        /* number of echos before down */
  96.     b_16    max_window;        /* maximum window size */
  97. };
  98.  
  99. /*    And this is the structure of ppp_config : */
  100.  
  101. struct ipcp_will_want {
  102.     b_16    will_negotiate, want_negotiate;
  103.     struct    ipcp_value_s want;
  104. };
  105.  
  106. struct ipcpconfig {
  107.     struct ipcp_will_want local, remote;
  108.     b_8        req_tries;
  109.     b_8        timeout;
  110. };
  111.  
  112. struct    connectScript{
  113.         Boolean    sendout;        /* should we send or wait for this string */
  114.         Boolean addreturn;        /* add a carriage return to end of string */
  115.         b_8        scriptstr[MAXSLEN + 1];    /* script string */
  116. };
  117.  
  118. struct ppp_config {
  119.     struct    lcpconfig    lcpconf;
  120.     struct    ipcpconfig    ipcpconf;
  121.     b_8        pap_retries;                /* number of tries for PAP */
  122.     b_8        pap_timeout;            /* timeout for PAP */
  123.     b_16    connecttimeout;
  124.     b_16    waittimeout;
  125.     b_16    baudrate;        /* port speed */
  126.     b_8        flags;
  127. #define CTSBIT 0x1
  128. #define RTSBIT 0x2
  129. #define FLOWBITS CTSBIT+RTSBIT
  130. #define USE_PULSE 0x4
  131.     b_8        config_name[MAXSLEN + 1];        /* configuration name */
  132.     b_8        defaultid[MAXSLEN + 1];        /* add one for length byte */
  133.     b_8        defaultpw[MAXSLEN + 1];
  134.     b_8        modeminit[MAXSLEN + 1];
  135.     b_8        phonenum[MAXSLEN + 1];
  136.     struct connectScript commands[NUMCOMMANDS];
  137. };
  138.  
  139.